// API响应基础类型
export interface ApiResponse<T = any> {
  code: number
  message: string
  data: T
  timestamp: number
}

// 分页响应类型
export interface PageResponse<T = any> {
  records: T[]
  total: number
  size: number
  current: number
  pages: number
  hasPrevious: boolean
  hasNext: boolean
}

// 分页查询参数类型
export interface PageQuery {
  pageNum: number
  pageSize: number
  [key: string]: any
}

// 列表查询参数类型
export interface ListQuery extends PageQuery {
  keyword?: string
  status?: string
  beginTime?: string
  endTime?: string
  [key: string]: any
}

// 删除参数类型
export interface DeleteParams {
  ids: number[]
}

// 状态修改参数类型
export interface StatusParams {
  id: number
  status: string
}

// 排序参数类型
export interface SortParams {
  id: number
  sort: number
}

// 导出参数类型
export interface ExportParams {
  ids?: number[]
  [key: string]: any
}

// 上传响应类型
export interface UploadResponse {
  url: string
  name: string
  size: number
  type: string
}

// 验证码响应类型
export interface CaptchaResponse {
  captchaKey: string
  captchaImage: string
}

// 字典项类型
export interface DictItem {
  label: string
  value: string | number
  color?: string
  disabled?: boolean
}

// 字典类型
export interface DictType {
  type: string
  name: string
  items: DictItem[]
}

// 选项类型
export interface OptionItem {
  label: string
  value: string | number
  disabled?: boolean
  children?: OptionItem[]
}
